             package com.java.diagnostics.visualizer.recommender.switchToBalanced;
             
             import com.java.diagnostics.visualizer.data.AggregateData;
             import com.java.diagnostics.visualizer.data.DataPoint;
             import com.java.diagnostics.visualizer.data.TupleData;
             import com.java.diagnostics.visualizer.parser.vgc.constants.VGCGCScopes;
             import com.java.diagnostics.visualizer.recommender.Recommendation;
             import com.java.diagnostics.visualizer.recommender.RecommendationBase;
             import com.java.diagnostics.visualizer.recommender.util.RecommendationLabels;
             
             public class LookforExcessiveClassUnloading
               extends RecommendationBase
               implements Recommendation
             {
               public void recommend(AggregateData data)
               {
                 Object gcMode = getGCMode(data);
                 
                 if (("gencon".equals(gcMode)) && (is26VM(data))) {
                   TupleData classLoaderRecord = data
                     .getTupleData("VGCLabels.class.loaders.unloaded");
                   
                   TupleData scopeRecord = data
                     .getTupleData("VGCLabels.gc.scopes");
                   if ((scopeRecord != null) && (classLoaderRecord != null)) {
                     double classLoadersUnloaded = classLoaderRecord.getRawTotalY();
                     int nurseryPauses = 0;
                     DataPoint[] scopePoints = scopeRecord.getDataPoints();
                     
                     for (DataPoint scope : scopePoints) {
                       if (scope.getRawY() == VGCGCScopes.SCAVENGE_INT)
                         nurseryPauses++;
                     }
                     if (classLoadersUnloaded / nurseryPauses > 0.25D) {
                       addWarning(
                         data, 
                         RecommendationLabels.EXCESSIVE_CLASSLOADER_UNLOADING);
                     }
                   }
                 }
               }
             }


